#!/bin/bash

echo "🔨 构建Keystone企业云资源申请系统..."

# 检查Go环境
if ! command -v go &> /dev/null; then
    echo "❌ Go环境未安装，请先安装Go 1.19+"
    exit 1
fi

# 设置构建环境
export CGO_ENABLED=0
export GOOS=linux
export GOARCH=amd64

# 创建构建目录
mkdir -p build

# 安装依赖
echo "📦 安装依赖..."
go mod tidy

# 构建二进制文件（嵌入所有静态资源）
echo "🔨 构建自包含二进制文件..."
go build -ldflags="-w -s" -o build/keystone-auth-portal

if [ $? -ne 0 ]; then
    echo "❌ 构建失败"
    exit 1
fi

# 复制配置文件模板  
echo "📋 复制配置文件..."
cp config.yaml build/config.yaml.template

# 创建使用说明
cat > build/README.txt << 'EOF'
Keystone企业云资源申请系统 - 部署说明
========================================

部署步骤:
1. 将此文件夹上传到目标Linux服务器
2. 重命名配置文件: mv config.yaml.template config.yaml
3. 编辑 config.yaml 填入你的OpenStack环境信息
4. 按照README.md完成Keystone环境配置
5. 运行: ./keystone-auth-portal
6. 访问: http://服务器IP:31080

文件说明:
- keystone-auth-portal: 主程序（自包含所有静态文件）
- config.yaml: 配置文件
- README.txt: 本说明文件

注意: 二进制文件已包含所有模板和静态文件，无需额外依赖。
EOF

# 创建部署包
echo "📦 创建部署包..."
cd build
tar -czf keystone-auth-portal.tar.gz keystone-auth-portal config.yaml.template README.txt

echo "✅ 构建完成！"
echo "📁 部署包位置: build/keystone-auth-portal.tar.gz"
echo "📊 文件大小: $(du -h keystone-auth-portal.tar.gz | cut -f1)"
echo ""
echo "🚀 部署说明:"
echo "1. 上传 keystone-auth-portal.tar.gz 到目标服务器"
echo "2. 解压: tar -xzf keystone-auth-portal.tar.gz"  
echo "3. 配置: mv config.yaml.template config.yaml && vi config.yaml"
echo "4. 运行: ./keystone-auth-portal"
echo "5. 访问: http://服务器IP:8080"